#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
    :author: 5km (十里)
    :url: https://www.smslit.top
    :copyright: © 2018 5km <5km@smslit.cn>
    :license: MIT, see LICENSE for more details.
"""
import os
import argparse
from markdown2html import Markdown2Html


def get_args():
    '''
    获取命令参数
    '''
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--style', help='指定要使用的 css 样式，css文件路径')
    parser.add_argument('-o', '--outdir', help='指定 html 文件输出目录')
    parser.add_argument('infiles', nargs='+', help='指定要转换的 markdown 文件，可以指定多个')
    return parser.parse_args()


if __name__ == '__main__':
    args = get_args()
    m2h = Markdown2Html()
    if args.style:
        m2h.setStyle(args.style)
    for mdfile in args.infiles:
        if args.outdir:
            if not os.path.exists(args.outdir):
                print(f'新建目录 {args.outdir}')
                os.makedirs(args.outdir)
            filename = os.path.splitext(os.path.basename(mdfile))[0] + '.html'
            outfile = os.path.join(args.outdir, filename)
            count = 1
            while os.path.exists(outfile):
                filename = os.path.splitext(
                    os.path.basename(mdfile))[0] + f'_{count}.html'
                outfile = os.path.join(args.outdir, filename)
                count += 1
        else:
            outfile = os.path.splitext(mdfile)[0] + '.html'
        m2h.convert(mdfile, outfile=outfile, prettify=True)
        print(f'{mdfile} 已转换完成，保存为{outfile}')
